//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.weilai.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.weilai.domain.Comments;
import com.weilai.domain.Posts;
import io.swagger.models.auth.In;

import java.util.List;
import java.util.Map;

public interface PostsService {
    void add(Posts posts);
    Posts selectById(int id);

    boolean isLikedByUser(int userId, int postId);

    int isLike(int postId, int userId);

    void deleteById(int id);

    void update(Posts posts);
    //查询所有帖子
    PageInfo<Posts> selectAll(int pageNum, int pageSize);

    //查询别人所有文章
    List<Posts> selectAllArticle(int userId);
    //查询自己所有文章
    List<Posts> selectMyAllArticle(int userId);
    //查询别人所有讨论
    List<Posts> selectAllDiscussion(int userId);
    //查询自己所有讨论
    List<Posts> selectMyAllDiscussion(int userId);

    List<Posts> selectByTitle(String title);

    List<Posts> selectByDate(String date1, String date2);

    List<Posts> selectByUserId(int id);

    //按userId查询文章浏览数
    List<Posts> selectData(int userId);



    // 点赞/取消点赞整合方法
    //String toggleLike(int userId, int postId);
    // 点赞操作
    Map<String, Object> like(int userId, int postId);
    Map<String, Object> cancelLike(int userId, int postId);
    // 评论操作
    String comment(Comments comments, Integer id);
    //获取指定帖子的所有评论
    List<Comments> getCommentsByPostId(int postId);
    // 浏览操作
    void view(int postId);
    // 转发操作
    void share(int postId);
    // 用户删除自己的评论
    String deleteCommentByUser(int commentId, int userId);
    // 作者删除评论
    String deleteCommentByAuthor(int commentId, int userId);
    Comments getCommentById(int commentId);

    //在首页根据帖子标题关键字和帖子类别关键字查询
    List<Posts> selectByKeywords(String keywords);
    //热搜实现
    List<Posts> hotPosts();

    //按id查询类别id
    int selectCategorieById(String name);

    //按userId删除帖子
    void deleteByUserId(int userId);

    public int selectCommentCount(int id);
}